Il existe également des versions en 3 dimensions de ce dispositif.
| Paramètre | Unité | Valeurs valides |
|---|---|---|
| Largeur | pixel | de 300px à 1000px |
| Longueur | pixel | de 300px à 1000px |
| Nombre de vannes | - | de 1 à 20 |
| Vitesse verticale | pixel par seconde | de 0px/s à 1000px/s |
que l'on souhaite ouvrir ou fermer. Le témoin lumineux
indique l'état de la vanne.
open() et close(). Il faut préciser l'indice de la vanne que l'on souhaite commander, le temps de départ de l'action(en millisecondes) et éventuellement sa durée.
| Commande | Arguments | Exemple |
|---|---|---|
open(indiceVanne,t_depart,duree) |
|
open(0, 1000, 2000) : ouvre la première vanne au bout de une seconde pendant deux secondes. |
open(indiceVanne,t_depart) |
|
open(0, 200) : ouvre la première vanne au bout de 200ms et la laisse ouverte. |
close(indiceVanne,t_depart) |
|
close(1, 1000) : ferme la deuxième vanne après 1s du départ. |
t=0 démarre au moment où l'utilisateur clique sur .
t_depart
open() (et éventuellement close()) :
open(0,0,1000) puis écrire l'instruction pour les 5 autres vannes. Lancer avec .
open(0,0) , puis compter de 2 en 2...
close(0,4000)
open() et close(), la zone de commande est capable de reconnaître et interpréter du JavaScript. Ca va être utile pour déclarer et utiliser des variables.
ma_variable et lui affecter une valeur valou le résultat d'un calcul :
var.
h que l'on fera varier comme on le souhaite. Commencer par déclarer les variables v=250 et h=30.
h et v pour affecter à une variable dt le temps d'ouverture nécessaire pour créer un filet d'eau de hauteur h.
h pour étirer ou raccourcir la figure obtenue.
dt au début du programme. Ensuite on l'utilise dans les arguments de open().
open(0,...,2*dt)
h
for nous permettra d'effectuer en quelques lignes l'ouverture de plusieurs vannes. Sur un petit mur d'eau le gain n'est pas forcément énorme, mais souvenez vous du mur présenté par la vidéo d'introduction...
i de 0 à N-1 on peut s'y prendre de la manière suivante :
for itérant un indice i de 0 à 5 afin d'ouvrir toutes les vannes.
On pourra utiliser pour ça une boucle itérant une variable $k$ allant de 0 à 9. Cette variable pourra être utilisée pour déterminer à quel moment chaque vanne s'ouvre.
i le numéro de la vanne de 0 à 5. La fonction open() n'apparait qu'une fois dans la boucle.
2*i pour i valant 0, 1 et 2.
2*i+1 pour i valant 0, 1 et 2.
k de 0 à 9. La variable doit être différente de i (indice des vannes).
dt est le temps d'ouverture. A chaque étape il s'est écoulé un temps 2*dt,...
nom_fonction prenant les arguments arg1, arg2, ... et renvoyant une valeur (ce n'est pas obligatoire) valeur_retour, on la déclare de la manière suivante :
return n'est donc pas nécessaire. Une fois la fonction créée, il faut l'appeler pour qu'elle s'exécute :
openAll(t_depart, duree) qui prend en argument t_depart une entier représentant l'instant d'ouverture des vannes en ms, duree la durée d'ouverture en ms. Cette fonction devra ouvrir en même temps toutes les vannes du mur pour tracer un bandeau horizontal.
openAll=function(t_depart,duree). Elle ne renvoie pas de valeur.
i pour ouvrir toutes les vannes de 0 à 5.
openAll() doit apparaître une seule fois dans une boucle. Cette fois, l'indice peut être i car il n'apparaît plus directement.
Programmer une fonction permettant le rendu visuel de petites images représentées sous la forme de tableaux de nombres ($1$ représente la présence d'eau, et $0$ l'absence d'eau).
Appliquer la fonction de manière à afficher des lettres de l'alphabet, puis des messages textuels.
h des rectangles de base formant l'image devra être calculée en fonction de la vitesse de chute de l'eau et de la hauteur du mur.
i) du tableau et chaque valeur (d'indice j) de chaque ligne devront être utilisée.
afficheTableau(T) qui prend en argument un tableau de nombres représentant une image.
afficheLettre(char) permettant d'afficher une lettre à l'aide des tableaux créés.
afficheTexte(txt) permettant d'afficher un message textuel défilant verticalement une lettre après l'autre.
while sous peine de faire crasher le navigateur...
i comme indice des lignes, et j comme indice des colonnes.
| Commande | Commentaire |
|---|---|
L[i] |
renvoie le ième élément de la liste L |
L[i][j] |
renvoie l'élément de la ième ligne et de la jème colonne |
L.length |
L'attribut length contient la longueur de la liste L |